package com.xjscrm.console.service.customer.groupSend;

import com.xjscrm.common.entity.SpeedGroupSendTask;
import com.xjscrm.console.param.BaseDto;
import com.xjscrm.console.param.groupSend.*;

public interface SpeedGroupSendService {
    void addSpeedGroupSendTask(SpeedGroupSendTaskDto speedGroupSendTaskDto);

    void updateSpeedGroupSendTask(SpeedGroupSendTaskDto speedGroupSendTaskDto);

    Object getSpeedGroupSendTaskList(SpeedGroupSendTaskQuery speedGroupSendTaskQuery);

    Object getSpeedGroupSendTaskDetail(SpeedGroupSendTaskDto speedGroupSendTaskDto);

    void startAndStop(StartAndStopDto startAndStopDto);

    void deleSpeedGroupSendTask(SpeedGroupSendTaskDto speedGroupSendTaskDto);


    Object getSpeedGroupSendJobList(SpeedGroupSendJobQuery speedGroupSendJobQuery);

    Object getSpeedGroupSendJobDetail(SpeedGroupSendJobDto speedGroupSendJobDto);

    void cancelSpeedGroupSendJob(BatchGroupSendJobDto batchGroupSendJobDto);

    void delSpeedGroupSendJob(BatchGroupSendJobDto batchGroupSendJobDto);

    void confirmSpeedGroupSendJob(BatchGroupSendJobDto batchGroupSendJobDto);

    void addGroupSendJob(SpeedGroupSendTask speedGroupSendTask);

    void autoGroupSendTaskSyncByImmediately(BaseDto baseDto);

    void autoGroupSendTaskSyncByCycle(BaseDto baseDto);

    void autoGroupSendJob(BaseDto baseDto);

    Integer getFilterSendTargetNum(SpeedGroupSendTaskDto speedGroupSendTaskDto);
}
